Перейти к основному содержимому

5.05. Лямбды, делегаты и отложенная инициализация

Разработчику Архитектору

Лямбды, делегаты и отложенная инициализация


Лямбда-выражения и анонимные методы

Анонимные методы:

button.Click += delegate(object sender, EventArgs e) {
Console.WriteLine("Clicked");
};

Лямбда-выражение:

Func<int, int> square = x => x * x;

Lazy<T> - отложенная инициализация

Lazy<HeavyObject> lazyObj = new Lazy<HeavyObject>(() => new HeavyObject());
Console.WriteLine(lazyObj.Value); // Создание только при первом обращении

Замыкания – захват внешних переменных во внутренней функции:

int x = 10;
Func<int, int> AddX = y => y + x;